package com.spzx.product.service.Impl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.spzx.common.core.utils.StringUtils;
import com.spzx.product.domain.ProductUnit;
import com.spzx.product.mapper.ProductUnitMapper;
import com.spzx.product.service.IProductUnitService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Service
@Transactional
public class ProductUnitServiceImpl extends ServiceImpl<ProductUnitMapper, ProductUnit> implements IProductUnitService {
    @Autowired
    ProductUnitMapper productUnitMapper;

    @Override
    public List<ProductUnit> selectList(ProductUnit productUnit) {
        return productUnitMapper.selectList(new LambdaQueryWrapper<ProductUnit>()
                .like(StringUtils.isNotEmpty(productUnit.getName()), ProductUnit::getName, productUnit.getName()));
    }

    /**
     * 通过ID查询
     * @param id
     * @return 一个商品单位对象
     */
    @Override
    public ProductUnit selectById(Long id) {
        return productUnitMapper.selectById(id);
    }

    /**
     * 增加商品单位
     * @param productUnit
     * @return 影响的行数：＞0：成功，＜0：失败
     */
    @Override
    public int addProductUnit(ProductUnit productUnit) {
        return productUnitMapper.insert(productUnit);
    }

    /**
     * 修改商品单位
     * @param productUnit
     * @return 影响的行数：＞0：成功，＜0：失败
     */
    @Override
    public int updateProductUnit(ProductUnit productUnit) {
        return productUnitMapper.updateById(productUnit);
    }

    /**
     * 删除商品单位
     * @param ids
     * @return 影响的行数：＞0：成功，＜0：失败
     */
    @Override
    public int deleteByIds(List<Long> ids) {
        return productUnitMapper.deleteBatchIds(ids);
    }
}
